package com.smart.model.dtomapper;

import com.smart.model.domain.SuperviseUserDO;
import com.smart.model.request.SuperviseUserAddRequest;
import com.smart.model.request.SuperviseUserRequest;
import com.smart.model.request.SuperviseUserUpdateRequest;
import com.smart.model.vo.SuperviseUserVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * @author zhanghong
 */
@Mapper(componentModel = "spring")
public interface SuperviseUserDtoMapper {

    SuperviseUserDtoMapper INSTANCE = Mappers.getMapper(SuperviseUserDtoMapper.class);

    /**
     * DO to VO
     * @param superviseUserDO
     * @return
     */
    SuperviseUserVO do2VO(SuperviseUserDO superviseUserDO);

    /**
     * request to DO
     * @param request
     * @return
     */
    SuperviseUserDO request2DO(SuperviseUserRequest request);

    /**
     * request to DO
     * @param request
     * @return
     */
    SuperviseUserDO request2DO(SuperviseUserAddRequest request);

    /**
     * request to DO
     * @param request
     * @return
     */
    SuperviseUserDO request2DO(SuperviseUserUpdateRequest request);
}
